package org.ens.delegation.dao;

import java.util.List;

import org.hibernate.criterion.Order;

import org.ens.delegation.bo.IBusinessObject;

/**
 * @author amine
 *
 * @param <T>
 * @param <PK>
 */
public interface IGenericDao <T extends IBusinessObject<PK>,PK>{
	
	public T save(T t);

	public void remove(PK pk);

	public List<T> getAll();

	public List<T> getAll(Order order);
	
	public T getById(PK pk);

	public boolean exists(PK pk);
        
	public Class<T> getReferencedClass();

}
